// // // 分装一个请求工具
// // // 1.创建一个新的axios实例
// // // 2.请求拦截器，如果有token进行头部携带
// // // 3.响应拦截器 1.剥离无效数据，获取有效数据 2.处理token失效
// // // 4.导出一个函数，调用当前的axios实例发请求，返回值promise
// // import { axios } from 'axios'
// // import { router } from '@/router'
// // import store from '@/store';
// // // 1.创建一个新的axios实例
// // // 导出基准地址，原因：其他地方（图片上传）不是通过axios发送请求的地方
// // export const baseURL = "http://pcapi-xiaotuxian-front-devtest.itheima.net/"
// // const instance = axios.create({
// //         // 设计基准路径
// //         // 配置请求的基准URL地址
// //         baseURL,
// //         timeout: 5000
// //             // 过期时间
// //     })
// //     // 2.请求拦截器，如果有token进行头部携带
// // instance.interceptors.request.use(config => {
// //     // 响应争取
// //     // 拦截业务逻辑
// //     // 进行请求配置修改
// //     // 如果本地有token 就在请求中
// //     // 1.获取用户信息对象
// //     const { profile } = store.state.user;
// //     // 2.判断是否存在token
// //     if (profile.token) {
// //         config.headers.Authorization = `Bearer ${profile.token}`
// //     }
// //     return config;
// // }), err => {
// //     // 响应错误
// //     return Promise.reject(err)
// // }
// // instance.interceptors.response.use(res => res.data, err => {
// //     if (err.response && err.response.status == 401) {
// //         // 1.清楚无效的用户信息
// //         store.commit('user/setUser', {})
// //             // 2.跳转到登录页
// //         const fullPath = encodeURIComponent(router.currentRoute.value.fullPath)
// //             // encodeURIComponent 转换uri编码，防止解析地址出问题
// //         router.push('/login?redirectUrl=' + 'fullPath')
// //             // 3.跳转页面需要传递参数（当前的路由地址）给登录页
// //             // 当前路由地址
// //             // 组件里面：'/user'
// //             // js模块中：router.currentRoute.value.fullPath就是当前路由地址 router.currentRoute 是ref响应式数据

// //     }
// //     return Promise.reject(err)
// // })

// // // 请求工具函数
// // export default (url, method, submitData) => {
// //     // 负责发请求，请求地址，请求方式，提交的数据

// //     return instance({
// //         url,
// //         method,
// //         // 1.如果是get请求 需要使用params来传递submiData
// //         // 2.如果不是get请求 需要使用data来传递submiData
// //         // const a={name:100} a.name a[10>9?'name':'age']
// //         // []设置一个动态key， 写js表达式,js表达式的执行结果当作key
// //         // method参数:get,Get,GET 转换成消息再来判断
// //         [method.toLowerCase() === 'get' ? 'params' : 'data']: submitData
// //     })
// //     export default request
// // }
// import axios from 'axios'
// import store from '@/store'
// import router from '@/router'
// // baseURL设置/超时时间设置
// const instance = axios.create({
//     baseURL: 'http://pcapi-xiaotuxian-front-devtest.itheima.net',
//     timeout: 5000
// })

// // 全局注入token
// instance.interceptors.request.use(config => {
//     // 1. 获取token
//     const { token } = store.state.user.profile
//         // 2. 请求头设置token
//     if (token) config.headers.Authorization = `Bearer ${token}`
//     return config
// }, e => Promise.reject(e))

// // token失效跳回到登录页
// instance.interceptors.response.use(
//     res => res.data,
//     e => {
//         if (e.response && e.response.status === 401) {
//             // encodeURIComponent 转换uri编码，防止解析地址出问题
//             const redirectUrl = encodeURIComponent(router.currentRoute.value.fullPath)
//             router.replace('/login?redirectUrl=' + redirectUrl)
//         }
//         return Promise.reject(e)
//     }
// )

// /**
//  * @param {String} - url  请求地址
//  * @param {String} - method  请求类型
//  * @param {Object} - submitData  对象类型，提交数据
//  */
// const request = (url, method, submitData) => {
//     return instance({
//         url,
//         method,
//         [method.toLowerCase() === 'get' ? 'params' : 'data']: submitData
//     })
// }

// export default request